/* 
 * функции для работы с компонентами
 */
function radioValue (name) {
	var checked = false;
	var value = null;
	var els = getByName(name);
	for (var i = 0; i < els.length; ++ i) {
		var el = els.item(i);
		if (el.checked) {
			checked = true;
			value = el.value;
		}
	}
	if (checked) 
		return { valid: true, value: value };
	else 
		return { valid: false, msg: 'Значение ' + name + ' не выбрано' };
}

function textValue (name, minValue, maxValue) {
	var el = null;
	var els = getByName(name);
	if ( ! els || els.length == 0)
		return { valid: false, msg: 'Компонент '+name+' не найден' };
	el = els[0];
	
	if (el.value == "")
		return { valid: false, msg: 'Значение '+name+' не может быть пустой строкой' };
	
	if (parseFloat(el.value) == el.value) {
        if (el.value < minValue) {
            return { valid: false, msg: 'Значение '+name+' не может быть меньше '+minValue };
        }
        else if (el.value > maxValue) {
            return { valid: false, msg: 'Значение '+name+' не может быть больше '+maxValue };
        }
		return { valid: true, value: el.value };
    }
	else
		return { valid: false, msg: 'Значение '+name+' содержит недопустимые символы' };
}

function textValueByClass (clazz, minValue, maxValue) {
	var el = null;
	var els = getByClass(clazz);
	if ( ! els || els.length == 0)
		return { valid: false, msg: 'Компонент '+name+' не найден' };
	el = els[0];
	
	if (el.value == "")
		return { valid: false, msg: 'Значение '+name+' не может быть пустой строкой' };
	
	if (parseFloat(el.value) == el.value) {
        if (el.value < minValue) {
            return { valid: false, msg: 'Значение '+name+' не может быть меньше '+minValue };
        }
        else if (el.value > maxValue) {
            return { valid: false, msg: 'Значение '+name+' не может быть больше '+maxValue };
        }
		return { valid: true, value: el.value };
    }
	else
		return { valid: false, msg: 'Значение '+name+' содержит недопустимые символы' };
}

function checkboxValue (name) {
	var countChecked = 0;
	var value = null;
	var els = getByName(name);
	for (var i = 0; i < els.length; ++ i) {
		var el = els.item(i);
		if (el.checked) {
			++ countChecked;
			value = el.value;
		}
	}
	if (countChecked == 1) 
		return { valid: true, value: value };
	else if (countChecked > 1)
		return { valid: false, msg: 'Выбрано несколько значений '+name };
	else 
		return { valid: false, msg: 'Значение ' + name + ' не выбрано' };
}

function checkboxValueByClass (clazz) {
	var countChecked = 0;
	var value = null;
	var els = getByClass(clazz);
    var titles = getByClass(clazz+"-title");
	for (var i = 0; i < els.length; ++ i) {
		var el = els.item(i);
		if (el.checked) {
			++ countChecked;
			value = titles.item(i).innerHTML;
		}
	}
	if (countChecked == 1) 
		return { valid: true, value: value };
	else if (countChecked > 1)
		return { valid: false, msg: 'Выбрано несколько значений '+name };
	else 
		return { valid: false, msg: 'Значение ' + name + ' не выбрано' };
}

function buttonValue (name) {
    var val = getById('button_'+name+'_value').innerHTML;
    if (val) {
        return { valid: true, value: val };
    }
    else {
        return { valid: false, msg: 'Значение ' + name + ' не выбрано' };
    }
}

function selectValue (name) {
    return { valid: true, value: getByName(name).item(0).value };
}

